package br.pacote.negocio;

//import br.pacote.persistencia.AlunoDAO;
//import br.pacote.persistencia.ConexaoDAO;
import java.sql.ResultSetMetaData;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyVetoException;
import java.text.ParseException;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import javax.swing.JScrollPane;
import javax.swing.text.MaskFormatter;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;


public class PesquisarProfessor extends JInternalFrame implements ActionListener
{
   private JLabel lbTitulo01;   
   private JLabel lbTitulo02;         
   private JLabel lbNome;         
   private JTextField txtNome;         
   private JButton btnPesquisar;
   private JButton btnEditar;
   private JButton btnExcluir;     
   private JScrollPane panelSQL;   
   private JTable lista;   
   private DefaultTableModel defaultDataModel = new DefaultTableModel();
   private DefaultTableModel defaultDataModel2 = new DefaultTableModel();
   private Vector nomeColunas = new Vector();
   private Vector dados = new Vector();   
   private Vector dados2 = new Vector();
   
   


   public void limpar()
   {     
   }

   public void reinicializaDados()
   {
      Vector r = new Vector();
      r.add("Nenhum registro para exibir");

      nomeColunas.removeAllElements();
      dados.removeAllElements();
      nomeColunas.add("Sem dados");
      dados.add(r);
      defaultDataModel.setDataVector(dados,nomeColunas);
      defaultDataModel2.setDataVector(dados,nomeColunas);
   }

   public PesquisarProfessor() throws ParseException
   {
      super("Pesquisar Professor");

      lbTitulo01 = new JLabel("SIGA - Sistema de Gestão Acadêmica");
      lbTitulo02 = new JLabel("Pesquisar Professor");
      lbNome = new JLabel("Nome do professor:");
      
      
      txtNome = new JTextField();
                 
      
      btnPesquisar = new JButton ("Pesquisar");
      btnEditar = new JButton ("Editar");
      btnExcluir = new JButton ("Excluir");
      
      
      lista = new JTable(defaultDataModel);
      panelSQL = new JScrollPane(lista);      


      setLayout(null);

      lbTitulo01.setBounds(280,-50,250,120);   
      lbTitulo02.setBounds(340,-30,150,120);   
      lbNome.setBounds(20,70,200,20);  
      
      
      txtNome.setBounds(110,70,550,20);   
       
      
      
      btnPesquisar.setBounds(670,70,100,20);
      btnEditar.setBounds(20,460,100,20);
      btnExcluir.setBounds(150,460,100,20);
      
            
      panelSQL.setBounds(20,100,750,350);      

      getContentPane().add(lbTitulo01);
      getContentPane().add(lbTitulo02);
      getContentPane().add(lbNome);
      
      
      getContentPane().add(txtNome);
      
      
      getContentPane().add(btnPesquisar);
      getContentPane().add(btnEditar);
      getContentPane().add(btnExcluir);

      getContentPane().add(panelSQL);       
            
      btnPesquisar.addActionListener(this);
      btnEditar.addActionListener(this);
      btnExcluir.addActionListener(this);

      reinicializaDados();

      setBounds(0,0,800,600);
      setVisible(true);
      setClosable(true);
      setDefaultCloseOperation(DISPOSE_ON_CLOSE);     
   }


   public void actionPerformed(ActionEvent e)
   {
       if(e.getSource()==btnPesquisar)
       {
           //AlunoDAO alunoDAO = new AlunoDAO();                 
           ///ResultSet resultSet = null;           
           //ResultSetMetaData resultSetMetaData = null;
         String url="jdbc:mysql://localhost/siga";
         String driver="com.mysql.jdbc.Driver";
         String usuario= "root";
         String senha="root";

         Connection conexao = null;
         Statement sentenca = null;
         ResultSet resultSet= null;
         ResultSetMetaData resultSetMetaData = null;
                                 
           try
           {
               
               //Aluno aluno = new Aluno(txtNome.getText());
               //List<Aluno> resultado;                    
               //resultado = alunoDAO.pesquisarAluno(aluno);
               //resultSet = (ResultSet)resultado;  
              // ConexaoDAO conexao = new ConexaoDAO();
             //  sentenca = (Statement) conexao.Conexao();
              // resultSet
             //  nomeColunas.removeAllElements();
               
               Class.forName(driver);

               conexao = DriverManager.getConnection(url,usuario,senha);
               sentenca = (Statement) conexao.createStatement();
               //resultSet = sentenca.executeQuery("Select *from pessoa");
               resultSet = sentenca.executeQuery("Select"
                       + " matricula,nome,cpf,rg,nascimento,"
                       + " endereco,telefone,email"
                       + " from pessoa"
                       + " inner join aluno"
                       + " on"
                       + " pessoa_matricula=matricula"
                       + " like nome='"+lbNome.getText()+"'");        
               resultSetMetaData = resultSet.getMetaData();
               nomeColunas.removeAllElements();      
               
               for(int i=0; i< resultSetMetaData.getColumnCount();i++)
               {
                   nomeColunas.add(i, resultSetMetaData.getColumnName(i+1));
               }

               Vector registro = null;

               dados.removeAllElements();

               while(resultSet.next())
               {
                   registro = new Vector();

                   for(int i=1; i<=resultSetMetaData.getColumnCount();i++)
                   {
                       registro.add(resultSet.getString(i));
                   }

                   dados.add(registro);
               }
               defaultDataModel.setDataVector(dados,nomeColunas);              
               
           }catch(ClassNotFoundException ex)
            {
                JOptionPane.showMessageDialog(this,"Driver não localizado: "+ ex.getMessage());
                reinicializaDados();
                
            }catch(SQLException ex)
            {
                JOptionPane.showMessageDialog(this,"Erro de SQL:"+ ex.getMessage());
            reinicializaDados();
                reinicializaDados();                
            }finally
            {
                try
                {
                    sentenca.close();
                    resultSet.close();
                    conexao.close();
                }catch(SQLException ex)
                 {
                     JOptionPane.showMessageDialog(this, "Erro de SQL: " +ex.getMessage());
                 }
            }
           
       }
      
   }
}
